#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include <string.h>

int next[1000];  // 假设t字符串长度不超过1000

void str_loop(char str[])
{
    int len = strlen(str);
    int i = 0;
    for (i = len - 1; i >= 0; i--)
    {
        str[i + 1] = str[i];
    }
    str[0] = str[len];
    str[len] = '\0';
}

void get_Next(char s[], int next[])  // 这个函数对字符串s进行预处理得到next数组
{
    int j = 0;
    next[0] = 0;  // 初始化
    int len = strlen(s);  // 获取字符串长度
    for (int i = 1; i < len; i++) {  // i指针指向的是后缀末尾，j指针指向的是前缀末尾
        while (j > 0 && s[i] != s[j]) {
            j = next[j - 1];  // 前后缀不相同，去找j前一位的最长相等前后缀
        }
        if (s[i] == s[j]) {
            j++;  // 前后缀相同，j指针后移
        }
        next[i] = j;  // 更新next数组
    }
}

int strSTR(char s[], char t[])  // 这个函数是从s中找到t，如果存在返回t出现的位置，如果不存在返回-1
{
    if (t[0] == '\0') return 0;  // 如果t为空字符串，返回0
    get_Next(t, next);
    int j = 0;
    int s_len = strlen(s);
    int t_len = strlen(t);

    for (int i = 0; i < s_len; i++) {
        while (j > 0 && s[i] != t[j]) {
            j = next[j - 1];  // 前后缀不相同，去找j前一位的最长相等前后缀
        }
        if (s[i] == t[j]) {
            j++;  // 前后缀相同，j指针后移
        }
        if (j == t_len) {
            return i - t_len + 1;  // 找到t的位置，返回其起始位置
        }
    }
    return -1;  // 如果没有找到t，返回-1
}

int Judege(char s[], char t[])
{
    int len = strlen(t);
    int i = 0;
    int count = 0;
    int flag = 0;
    while (1)
    {
        int n = strSTR(s, t);
        if (n != -1)
        {
            flag = 1;
            break;
        }
        else
        {
            str_loop(t);
            count++;
            if (count > len - 1)
            {
                break;
            }
        }
    }
    return flag;
}

int main()
{
    char s[100];
    char t[100];
    int result[100];
    int i = 0;
    int count = 0;
    while (1)
    {
        scanf("%s", t);
        scanf("%s", s);
        if (s[0] != '0' && t[0] != '0')
        {
            result[i] = Judege(s, t);
            count++;
            i++;
        }
        else
        {
            break;
        }
    }
    for (i = 0; i < count; i++)
    {
        if (result[i] == 0)
        {
            printf("NO\n");
        }
        else if (result[i] == 1)
        {
            printf("YES\n");
        }
    }
	return 0;
}
